Generating textual summary about physical location based on computing interactions pertaining to physical location

ABSTRACT

Methods and apparatus for determining aspects of locations based on computing interactions of users that pertain to the locations. In some implementations, an aspect of a location may be determined based on comparing a first computing interaction measure for the location to a second measure. The first computing interaction measure may be determined based on a first group of computing interactions that pertain to the location. In some implementations, the second measure may be determined based on a second group of addition computing interactions. In some implementations, a textual summary may be generated automatically based on the first and/or second computing interaction measure, and/or based on the determined aspect.

BACKGROUND

Aspects of physical locations, such as businesses, may be determinedfrom Internet documents that are related to the physical locationsand/or explicit input of individuals that are related to the physicallocations. For example, a webpage related to a business may be analyzedto identify a category of the business, a location of the business, etc.As another example, reviews submitted by users related to a business maybe analyzed to determine an overall rating of the business. As yetanother example, an owner of the business or another user may manuallyinput information to a service that maintains business information tohave the business information reflected by the service. For instance, anowner may enter the address, operating hours, webpage, and otherinformation related to the business.

SUMMARY

This specification is directed generally to methods and apparatus forgenerating textual summaries about physical locations, such asbusinesses, based on aggregating and analyzing computing interactions byusers that pertain to the physical locations. In some implementations,computing interactions by users that pertain to physical locations thatmay be utilized to determine aspects of the physical locations include,for example, directional queries seeking directions to the locations(e.g., driving, walking, and/or public transportation directions),searches related to the locations (e.g., map-based searches and/orsearches for Internet documents), location data from mobile devices(e.g., based on GPS, Wi-Fi, and/or other sensors), calendar entriesrelated to the locations, photos or other media items of the user havingmetadata related to the locations (e.g., geotags of the media items),check-ins to the locations, reviews of the locations, and/or starring orotherwise flagging the locations on a map and/or other interfaces. Agenerated textual summary may be presented to a user in various ways.

In some implementations, a first computing interaction measure for aphysical location may be determined based on a first group of computinginteractions associated with the location. For example, a firstcomputing interaction measure may be determined for a location that isindicative of a quantity of computing interactions and/or duration ofcomputing interactions with the location as indicated by the computinginteractions of the first group. The computing interaction measure maybe compared to a second computing interaction measure to determine anaspect of the location and/or generate a textual summary about thelocation.

In some implementations, the second computing interaction measure mayinclude one or more static or dynamic thresholds. For example, the firstcomputing interaction measure may be indicative of duration ofinteractions with the location and the second measure may be a staticthreshold duration. If the first computing interaction measure fails tosatisfy the threshold duration, the aspect may be indicative of a“quick-stop” business (e.g., a quick-bites restaurant) and if itsatisfies the threshold duration, the aspect may be indicative of a“long-stop” business (e.g., a long sit-down restaurant).

In some implementations, the second computing interaction measure mayadditionally or alternatively include an additional computinginteraction measure that is based on a second group of computinginteractions that are in addition to the first group of computinginteraction interactions utilized to determine the first computinginteraction measure. For example, the second group may include computinginteractions associated with the physical location that are temporallydistinct from the computing interactions of the first group. Forinstance, the first computing interaction measure may be indicative of aquantity of interactions with the location during one or more first timeperiods and the second measure may be indicative of a quantity ofinteractions with the location during one or more second time periods.Also, for example, the second group may include computing interactionsassociated with one or more additional physical locations that are inaddition to the location. For instance, the first computing interactionmeasure may be indicative of a quantity of interactions with thelocation and the second measure may be indicative of a quantity ofinteractions with one or more locations that are similar to the location(e.g., a “peer group” of physical locations). Additional description ofexample aspects that may be determined and example techniques fordetermining such aspects are provided herein.

One or more determined aspects assigned to a physical location may beutilized for various online services. For example, the determinedaspects of a business may be included in a textual summary for displayin combination with other information related to the business. Also, forexample, the determined aspects of a business may be utilized toidentify and provide the business' identity to a user in response to auser selection indicative of the aspect. For instance, a user selectionof “trending restaurants near me” may be utilized to identifyrestaurants near the user that are associated with an aspect of“trending up”. Also, for example, the determined aspects of a businessmay be utilized to rank information related to the business that isidentified as responsive to a query or other information request of auser. For instance, the information related to the business may bepromoted if the business is associated with a determined aspect of“trending up”. Also, for instance, the query may include one or moreterms such as “popular with locals”, the business may be associated witha related aspect indicating popularity with locals, and the ranking ofthe information related to the business may be promoted in searchresults provided responsive to the query.

In some implementations, a method is provided that includes the stepsof: identifying, from one or more databases, a first group of computinginteractions that pertain to a physical location; identifying, from theone or more databases, a second group of computing interactions thatpertain to one or more additional physical locations, wherein the one ormore additional physical locations satisfy one or more criteria;determining a first computing interaction measure for the physicallocation based on the first group of computing interactions; determininga second computing interaction measure for the one or more additionalphysical locations based on the second group of computing interactions;and automatically generating a textual description of the physicallocation based on comparison of the first computing interaction measureto the second computing interaction measure.

This method and other implementations of technology disclosed herein mayeach optionally include one or more of the following features. In someimplementations, the one or more criteria may include being locatedwithin a geographic area associated with the physical location. In someimplementations, the method may further include selecting the geographicarea based at least in part on a population or size of the geographicarea. In some implementations, the one or more criteria may includebeing associated with a particular price range.

In some implementations, the method may further include defining theparticular price range based on a price range associated with thephysical location or a user preference. In some implementations, the oneor more criteria may include being associated with a particularcategory. In some implementations, the one or more criteria may includebeing located within a geographic area associated with the physicallocation. In some implementations, automatically generating the textualdescription of the physical location comprises including, in the textualdescription, an indication of a how the first computing interactionmeasure compares to the second computing interaction measure.

In some implementations, the method further includes determining the oneor more criteria based on contextual data associated with a usercomputing device. In some implementations, the contextual data mayinclude a user search, performed on the user computing device, relatingto physical locations that satisfy the one or more criteria. In someimplementations, the contextual data may include a location of the usercomputing device. In some implementations, the contextual data mayinclude a directional query performed on the user computing device.

Other implementations may include a non-transitory computer readablestorage medium storing instructions executable by a processor to performa method such as one or more of the methods described above. Yet anotherimplementation may include a system including memory and one or moreprocessors operable to execute instructions, stored in the memory, toperform a method such as one or more of the methods described above.

It should be appreciated that all combinations of the foregoing conceptsand additional concepts described in greater detail herein arecontemplated as being part of the subject matter disclosed herein. Forexample, all combinations of claimed subject matter appearing at the endof this disclosure are contemplated as being part of the subject matterdisclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example environment in which textual summariesabout physical locations may be generated based on computinginteractions pertaining to the physical locations.

FIG. 2 illustrates an example of how an aspect of a physical locationmay be determined and assigned to the physical location, and how atextual summary about the physical location may be generated, based oncomputing interactions that pertain to the physical location.

FIG. 3 is a flow chart illustrating an example method, in accordancewith various implementations.

FIG. 4 illustrates an example interface that includes informationprovided based on aspects of locations and one or more generated textualsummaries.

FIG. 5 illustrates an example architecture of a computer system.

DETAILED DESCRIPTION

FIG. 1 illustrates an example environment in which aspects of physicallocations (also referred to herein simply as “locations”) may bedetermined, and/or textual summaries generated, based on computinginteractions (also referred to herein as “interactions”) that pertain toand/or are associated with the physical locations. The exampleenvironment includes a client device 105, an aspect determination system120, and an information system 140. Aspect determination system 120 maybe implemented in one or more computers that communicate, for example,through a network (not depicted). Aspect determination system 120 is anexample of a system in which the systems, components, and techniquesdescribed herein may be implemented and/or with which systems,components, and techniques described herein may interface.

Client device 105, aspect determination system 120, and informationsystem 140 each include one or more memories for storage of data andsoftware applications, one or more processors for accessing data andexecuting applications, and other components that facilitatecommunication over a network. The operations performed by aspectdetermination system 120, and/or information system 140 may bedistributed across multiple computer systems.

Client device 105 may be a computer coupled to the aspect determinationsystem 120, the information system 140, and/or other component (e.g.,interactions database 152 and/or a component managing interactionsdatabase 152) through one or more networks 101 such as a local areanetwork (LAN) or wide area network (WAN) such as the Internet. Theclient device 105 may be, for example, a desktop computing device, alaptop computing device, a tablet computing device, a mobile phonecomputing device, a computing device of a vehicle of the user (e.g., anin-vehicle communications system, an in-vehicle entertainment system, anin-vehicle navigation system), or a wearable apparatus of the user thatincludes a computing device (e.g., a watch of the user having acomputing device, glasses of the user having a computing device).Additional and/or alternative client devices may be provided.

As described herein, in determining aspects of physical locations,aspect determination system 120 may utilize interactions frominteractions database 152 that are indicative of computing interactionsby users that pertain to the physical locations. One or more of thecomputing interactions may be indicative of activities of users viacomputing devices such as client device 105. For the sake of brevity,only a single client device 105 is illustrated in FIG. 1 and describedin some examples herein. However, activities of multiple users viamultiple client devices may be utilized in determining aspects ofphysical locations. Moreover, although a user will likely operate aplurality of computing devices, and aspects of physical locations may bedetermined based on user actions via multiple of the computing devices,for the sake of brevity, certain examples described in this disclosurewill focus on the user operating client device 105.

Client device 105 may operate one or more applications and/or componentssuch as those that facilitate user selections and/or input that may beindicative of a computing interaction pertaining to a physical location,those that provide location data that may be indicative of a userinteraction related to a physical location, and/or those that facilitateprovision of search results, suggestions, and/or other informationrelated to physical locations based on output of information system 140.These applications and/or components may include, but are not limitedto, a browser 106, a position coordinate component, such as a globalpositioning system (“GPS”) component 108 (other position coordinatetechnologies such as cellular or Wi-Fi-based triangulation may be used),a mapping application 110 (e.g., to obtain driving directions to or fromthe location), and so forth. In some instances, one or more of theseapplications and/or components may be operated on multiple clientdevices operated by the user. Other components of client device 105 notdepicted in FIG. 1 that may provide indications of interactions of theuser with a physical location may include, but are not limited to, acalendar application (e.g., based on an entry identifying the location),a phone application (e.g., based on a call to or from a numberassociated with the location), an email application (e.g., based on ane-mailed receipt from the location, e-mailed reservations for thelocation), a social networking application (e.g., based on a postrelated to the location, a check-in to the location, a review of thelocation), a virtual wallet application (e.g., based on a purchaseassociated with the location), a search application (e.g., based onsearches associated with the physical location), a camera application(e.g., based on a geotag included in photos captured via the camera),and so forth. Some of the aforementioned example components may bestandalone components or may optionally be accessed via the browser 106or another component.

Interactions database 152 may store records of computing interactions bya plurality of users that pertain to physical locations. Generally, acomputing interaction of interactions database 152 that pertains to aphysical location includes an identifier of that physical location suchas an address (e.g., latitude/longitude, street address), an alias,and/or an entity identifier. The computing interaction may optionallyinclude additional information related to the interaction such as, forexample, a date of the interaction, time(s) associated with theinteraction (e.g., a single time, a time range, and/or time indicativeof duration of the interaction), a confidence measure (e.g., based onconfidence in the source of the interaction), and so forth. Computinginteractions that may be logged in interactions database 152 include,for example, directional queries seeking driving directions to thelocations, searches related to the locations, location data from mobiledevices, check-ins to the locations, reviews of the locations, calendarentries identifying the locations, media items that include geotagsidentifying the locations, extracted reservation or receipt information(e.g., extracted from emails) related to the locations, browsing historyof the user related to the locations (e.g., indicating one or moredocuments accessed by the user such as webpages), and/or starring orotherwise flagging the locations on a map and/or other interface.

Various components may provide indication of computing interactions forstorage in interactions database 152 and a separate component mayoptionally maintain interactions database 152. Examples of componentsthat may provide interactions for storage in interactions database 152include, for example, client device 105 and other computing devices ofother users, information system 140 and other systems, an email systemexecuting on one or more computing devices, navigation systems and/orGPS-enabled devices, and/or one or more other components that mayidentify interactions with a location. Although only a singleinteractions database 152 is illustrated, in various implementationsinteractions database 152 may include multiple databases. For example, afirst database may include directional queries related to locations anda second database may include location data from mobile computingdevices of users that are related to locations. In some implementations,interactions database 152 may include entries of a plurality of usersand access to entries of a user in database may be allowed for only theuser and/or one or more other users or components authorized by the usersuch as aspect determination system 120.

In situations in which the systems described herein collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current geographic location), or to controlwhether and/or how to receive content from the content server that maybe more relevant to the user. Also, certain data may be treated in oneor more ways before it is stored or used, so that personal identifiableinformation is removed. For example, a user's identity may be treated sothat no personal identifiable information can be determined for theuser, or a user's geographic location may be generalized wheregeographic location information is obtained (such as to a city, ZIPcode, or state level), so that a particular geographic location of auser cannot be determined. Thus, the user may have control over howinformation is collected about the user and/or used.

Point of interest (“POI”) database 154 may include a collection ofentities, and for each of one or more of the entities, a mapping to oneor more properties associated with the entity and/or one or more otherentities related to the entity. For example, the POI database 154 may bea knowledge graph, such as a local knowledge graph that includesentities associated with businesses and/or other locations and includesproperties for each of the entities such as phone numbers, addresses,open hours, most popular hours, etc.

In some implementations, POI database 154 may be utilized to identifyone or more locations that are associated with computing interactions ofinteractions database 152. For example, physical locations identified inPOI database 154 may be associated with an address, longitude andlatitude, and/or other coordinates that may be utilized to mapinteractions of interactions database 152 with physical locations. Also,for example, each of one or more physical locations identified in POIdatabase 154 may be associated with one or more aliases for the physicallocation and/or aliases for properties of the location and those aliasesmay be utilized to map interactions of interactions database 152 withphysical locations.

In various implementations, grouping engine 122 may utilize informationfrom POI database 154 to determine a group of interactions frominteractions database 152. For example, grouping engine 122 may identifya point of interest in POI database 154 that is associated withlongitude and latitude coordinates and further determine a group ofinteractions that are associated with those same longitude and latitudecoordinates and/or associated with coordinates within a thresholddistance of those longitude and latitude coordinates. For instance,grouping engine 122 may identify Restaurant 1 and a latitude andlongitude for Restaurant 1 from POI database 154. Grouping engine 122may further determine a group of interactions that are associated withlocations that are within 50 yards of the identified latitude andlongitude of Restaurant 1. Also, for example, Restaurant 1 may beassociated with a street address in POI database 154 and grouping engine122 may identify one or more interactions from interactions database 152that include navigational directions to the street address of Restaurant1. Also, for example, grouping engine 122 may identify one or morealiases for Restaurant 1 in POI database 154 and determine a group ofinteractions from interactions database 152 that are associated with theone or more of the aliases (and optionally associated with additionalproperties such as a location near Restaurant 1 or an alias of acategory associated with Restaurant 1).

In this specification, the term “database” will be used broadly to referto any collection of data. The data of the database does not need to bestructured in any particular way, or structured at all, and it can bestored on storage devices in one or more locations. Thus, for example,the databases 152, 154, and/or 158 may each include multiple collectionsof data, each of which may be organized and accessed differently. Also,for example, all or portions of the databases 152, 154, and/or 158 maybe combined into one database and/or may contain pointers and/or otherlinks between entries in the database(s). Also, in this specification,the term “entry” will be used broadly to refer to any mapping of aplurality of associated information items. A single entry need not bepresent in a single storage device and may include pointers or otherindications of information items that may be present on other storagedevices. For example, an entry that identifies a computing interactionin interactions database 152 may include multiple nodes mapped to oneanother, with each node including an identifier of an entity or otherinformation item that may be present in another data structure and/oranother storage medium.

Aspect determination system 120 may determine one or more aspects toassign to a location based on computing interactions of users thatpertain to the location. In various implementations, aspectdetermination system 120 may include a grouping engine 122, aninteraction measure engine 124, an aspect engine 126, and/or a textualsummary generation engine 128. In some implementations, one or more ofengines 122, 124, 126, and/or 128 may be omitted. In someimplementations, all or aspects of one or more of engines 122, 124, 126,and/or 128 may be combined. In some implementations, one or more ofengines 122, 124, 126, and/or 128 may be implemented in a component thatis separate from aspect determination system 120.

Generally, grouping engine 122 determines groups of computinginteractions that are each associated with a physical location or agroup of physical locations. For example, grouping engine 122 maydetermine a group of computing interactions from interactions database152 that includes computing interactions of users that pertain to aparticular physical location such as a business, a landmark, a touristattraction, or a park. As described herein, the grouping engine 122 mayoptionally take one or more additional parameters into account indetermining a group of user interactions—that are in addition to thegroup being associated with a physical location or a group of physicallocations. For example, the grouping engine 122 may determine a group ofinteractions that are associated with one or more physical locations andthat are also associated with: one or more dates such as particulardates, particular date ranges, and/or particular day(s) of the week; oneor more times such as a single time, a time range, and/or timesindicative of durations of the interactions; at least a thresholdconfidence measure (e.g., based on confidence in the source of theinteraction); one or more user attributes such as an attributeindicating a particular user group; one or more particular sources(e.g., only location data, only driving directions); and so forth.

For example, grouping engine 122 may determine a group of interactionsof users at a location at one or more time periods (e.g., interactionsof users at Restaurant 1 between 11 am and 1 pm). Also, for example,grouping engine 122 may determine a group of interactions that includesinteractions of users at multiple locations of a category of locationswithin a geographic area (e.g., interactions of users with pizzarestaurants in a particular neighborhood, or even within a particulargeofence). Which parameters are utilized by grouping engine 122 indetermining one or more groups of user interactions may be based atleast in part on the desired aspect to be determined about a location.Examples are provided herein of example aspects that may be determinedfor a location and parameters that may optionally be taken into accountin determining one or more groups of interactions for utilization indetermining the example aspects.

In some implementations, grouping engine 122 may determine a first groupof interactions associated with a location and determine a second groupof interactions associated with one or more locations that are similarto the location (referred to herein as a “peer group”). For example,grouping engine 122 may determine a first group of interactionsassociated with a restaurant and determine a second group ofinteractions that includes interactions associated with other locationsthat have cuisine type(s), price(s), clientele, a geographic area, alocation category (e.g., restaurant), and/or other attributes that aresimilar to attributes of the location. In some implementations,similarity may be defined to require exact matching between one or moreattributes (e.g., the restaurant and the other locations must have acuisine type in common) and/or soft matching between one or moreattributes (e.g., the restaurant and the other locations must beassociated with average prices that are within a threshold of oneanother). A geographic area may be defined with various levels ofgranularity such as a zip code, a neighborhood, a city, a region, anarea code, and so forth.

In some implementations of determining a group, grouping engine 122 maydetermine that one or more interactions are outliers and not include theinteractions in the group. Outlying interactions may be identified andremoved from groups based on one or more techniques, such as truncatedmeans and/or Winsorized means, and/or interactions that are below athreshold duration and/or above a threshold duration may be discarded.For example, grouping engine 122 may not include interactions that areassociated with a duration of visit that is greater than a threshold asthey may be indicative of interactions of employees instead ofcustomers. Also, for example, grouping engine 122 may identify openinghours and/or closing hours of a location and determine that interactionsfrom users that are present before opening time and/or after closingtime are likely employees. Also, for example, in some implementationsone or more interactions may be associated with a confidence level andonly interactions that satisfy a threshold confidence level may beincluded by grouping engine 122 in a group of interactions. For example,an interaction that indicates multiple potential locations may beassociated with a low confidence level if an exact location may not beaccurately determined (e.g., the interaction may be based on inaccuratelocation data that indicates an area that encompasses multiple points ofinterest). In some implementations, grouping engine 122 may determine agroup of interactions associated with a physical location only when thecount of indicated interactions satisfying parameters for that groupsatisfies a threshold. For example, grouping engine 122 may determine agroup of computing interactions only when the count of indicatedinteractions for the group is above 100 interactions. In someimplementations, grouping engine 122 may determine a group of computinginteractions associated with a physical location only when the count ofusers who have interactions satisfying parameters for that groupsatisfies a threshold. For example, grouping engine 122 may determine agroup of computing interactions only when the group includesinteractions from at least X number of users. In some implementations,groups of interactions may be fit to a distribution, such as alog-normal distribution and/or a Weibull distribution, and theparameters of the distribution may be utilized by one or morecomponents.

Interaction measure engine 124 may determine one or more computinginteraction measures based on the one or more groups of computinginteractions determined by grouping engine 122. For example, groupingengine 122 may determine a group of interactions that includes computinginteractions by that pertain to a location and interaction measureengine 124 may determine one or more measures indicative of durations ofinteractions of the users indicated by the group of interactions. Insome implementations, the measures may include an average or medianduration of visits (e.g., as indicated by a length of time a user's GPSreading remains within a particular radius, or the time between aningress and egress GPS reading). In some implementations, the measuresmay additionally or alternatively include a continuous or discretedistribution of durations of visits, e.g., a mean with a standarddeviation, a vector including all lengths of visits or a count oflengths of visits for one or more durations (e.g., a count of durationsfrom 0-5 minutes, a count of durations from 5-10 minutes, etc.), and soforth. Also, for example, interaction measure engine 124 may determine,based on a group of interactions for a location, one or more measuresindicative of a quantity of visits of users to the location. Forinstance, the measures may include one or more of a raw count of theinteractions of the group, an average and/or median count per day orother time period, and/or a continuous or discrete distribution ofquantity of interactions (e.g., a mean with a standard deviation, avector including raw counts or averages for each of a plurality of timeperiods (e.g., a count of interactions each day for the past two weeks;a count of interactions during a first time period, a second timeperiod, etc.)). Which measures are determined by interaction measureengine 124 may be based at least in part on the desired aspect to bedetermined about a location.

In some implementations, interaction measure engine 124 may determine aninteraction measure that is based on an average of one or more of theinteractions of the group of interactions. For example, grouping engine122 may determine a group of location data interactions for a locationbetween the hours of 11 am and 1 pm (i.e., lunch hours) on multipledates and interaction measure engine 124 may determine an interactionmeasure indicative of an average duration of interactions with thelocation that initiate during that time. Also, for example, groupingengine 122 may determine a group of location data interactions for thelocation between the hours of 5 pm and 9 pm (i.e., dinner hours) onmultiple dates and interaction measure engine 124 may determine aninteraction measure indicative of an average duration of interactionswith the location that occurred during that time.

In some implementations, interaction measure engine 124 may determineone or more measures indicative of quantities of interactions during aplurality of discrete intervals. For example, grouping engine 122 maydetermine a group of interactions of users with Restaurant 1 andinteraction measure engine 124 may determine an interaction measure thatindicates the number of interactions that occurred between 11 am and 12pm, between 12 pm and 1 pm, between 1 pm and 2 pm, etc. Also, forexample, grouping engine 122 may determine a group of interactions forall restaurants in the same city as Restaurant 1 and interaction measureengine 124 may determine an interaction measure that indicates theaverage number of interactions per restaurant for the same discreteintervals.

In some implementations, interaction measure engine 124 may determineone or more interaction measures based on confidence values associatedwith the interactions. For example, interactions with a location may beassociated with confidence values indicative of a degree of confidencethe interaction indicates actual interaction with the location, asdescribed herein. Interaction measure engine 124 may utilize associatedconfidence values to weight one or more of the interactions. As anexample, interaction measure engine 124 may weight an online check-in ofa user at a location more heavily than a non-directional search relatedto the location.

Aspect engine 126 may determine an aspect of a location based on the oneor more interaction measures determined by interaction measure engine124, and may assign the aspect to the location. For example, the aspectengine 126 may associate the aspect with the location in POI database154. As one example of determining an aspect, interaction measure engine124 may determine an interaction measure that indicates an averageinteraction time at a restaurant location, and aspect engine 126 maycompare that interaction measure to a second measure to determinewhether the restaurant location is a “quick bites” location or a longer“sit down” location. For example, the second measure may be a thresholdsuch as 30 minutes and if the interaction measure is less than thethreshold, the aspect of the restaurant may be indicative of a “quickbites” location. Also, for example, the second measure may be based onan average interaction time of other similar locations (e.g., otherrestaurants in the area and/or other restaurants of the same type), andif the interaction measure is less than the average, or more than athreshold less than the average, the aspect of the restaurant may beindicative of a “quick bites” location. As another example ofdetermining an aspect, interaction measure engine 124 may determine afirst computing interaction measure that indicates the average quantityof daily dinnertime interactions with a restaurant over the last 6months and a second computing interaction measure that indicates theaverage quantity of daily dinnertime interactions with the restaurantover the last week. The aspect engine 126 may determine that the secondcomputing interaction measure indicates an increase in interactionsrelative to the first computing interaction measure and determine anaspect of “trending up” for the restaurant.

In some implementations, aspect engine 126 may optionally utilize one ormore rules in determining aspects for locations. For example, a firstrule may be utilized to determine a first aspect for all locations or aclass of locations and a second rule may be utilized to determine asecond aspect for all locations or a class of locations. As one exampleof a rule that may be utilized, aspect engine 126 may identify alocation has an aspect indicative of “trending up” based on determiningthat a difference between a first measure indicative of a quantity ofmore recent in time interactions and a second measure indicative of aquantity of less recent in time interactions satisfies a thresholdvalue, percentage, and/or proportion. For instance, aspect engine 126may determine that a restaurant is trending up if the first computinginteraction measure and the second computing interaction measure areindicative of an increase in interactions of at least 20% (e.g., arestaurant may have an aspect of “trending up” if a first measureindicative of an average quantity of daily interactions over the lastweek is 50% greater than a second computing interaction measure of anaverage quantity of interactions over the last six months). As anotherexample of a rule that may be utilized, aspect engine 126 may identify alocation has an aspect indicative of “trending up slightly” based ondetermining that a difference between a first measure indicative of aquantity of more recent in time interactions and a second measureindicative of a quantity of less recent in time interactions satisfies afirst threshold value, and an aspect of “trending up significantly” ifthe difference satisfies a second threshold value. Which techniques areemployed by aspect engine 126 to determine an aspect may be based atleast in part on the desired aspect to be determined, the group(s)determined by grouping engine 122, and/or based on the interactionmeasures determined by interaction measure engine 124. Examples areprovided herein of example aspects that may be determined for a locationand one or more example techniques that may optionally be utilized indetermining the aspects.

In some implementations, aspect engine 126 may determine an aspect of alocation based on multiple groups of interactions for the location. Asone example, grouping engine 122 may determine a first group ofinteractions for a location during lunch hours and a second group ofinteractions for the location during dinner hours. Interaction measureengine 124 may determine a first measure indicative of average userinteractions at lunch (based on the first group) and a second measureindicative of average interactions at dinner (based on the secondgroup). Aspect engine 126 may determine an aspect indicative of thelocation being “more popular for lunch than dinner” based on determiningthat the first measure is greater than the second measure and/or basedon determining that the proportion of interactions that occur duringlunch (i.e., the first measure) is indicative of the location havingmore business during lunch than during dinner. As another example,grouping engine 122 may determine a first group of interactions for alocation that are associated with weekdays and a second group ofinteractions that are associated with weekends. Interaction measureengine 124 may determine a first measure that is indicative of averagedaily interactions on the weekdays (based on the first group) and asecond measure that is indicative of average daily interactions on theweekends (based on the second group). Aspect engine 126 may determine anaspect that indicates whether the location is more popular on weekdaysor weekends. For example, aspect engine 126 may determine an aspect of“Popular Weekday Location” if the interactions measures determined byinteraction measure engine 124 are indicative of more average dailyweekday interactions than weekend interaction. As yet another example,aspect engine 126 may determine that a location has recently opened orclosed based on comparing a first computing interaction measureindicative of a quantity of interactions with the location over a recenttime period (e.g., the last 5 days) to a second computing interactionmeasure indicative of a quantity of interactions over a time period thatincludes less recent in time interactions (e.g., the last 3 months,optionally including the last 5 days). For example, if the comparisonindicates a significant increase in interactions, an aspect of “recentlyopened” may be determined for the location. Also, for example, if thecomparison indicates a significant decrease in interactions and thefirst computing interaction measure indicates relatively few or norecent interactions, an aspect of “recently closed” may be determinedfor the location.

In some implementations, aspect engine 126 may determine an aspect of alocation based on comparing a first computing interaction measuredetermined based on a group that includes only interactions with thelocation to a second computing interaction measure determined based on agroup that includes interactions with one or more other locations thatare in addition to the location. For example, grouping engine 122 maydetermine a first group of interactions for all Italian restaurants in ageographic area and interaction measure engine 124 may determine a firstcomputing interaction measure based on the group that is indicative ofthe average quantity of daily interactions per restaurant. Additionally,grouping engine 122 may determine a second group of interactions for aparticular Italian restaurant in the geographic area and interactionmeasure engine 124 may determine a second computing interaction measurebased on the second group that is indicative of the average quantity ofdaily interactions with the particular Italian restaurant. Based oncomparing the first measure to the second measure, aspect engine 126 maydetermine an aspect that is indicative of the popularity of theparticular Italian restaurant. For example, the aspect may be indicativeof the restaurant being a popular Italian restaurant if the averagequantity of daily interactions for the restaurant is greater than theaverage quantity of daily interactions for all Italian restaurants inthe geographic area.

Textual summary generation engine 128 may be configured to automaticallygenerate one or more textual summaries about a physical location basedon signals provided by various components, such as interaction measureengine 124 and/or aspect engine 126. For example, in someimplementations, textual summary generation engine 128 may be configuredto automatically generate a textual description of a physical locationbased on comparison of two or more interaction measures. This comparisonmay be the same comparison that yields one or more aspects that areassigned to the physical location, and in fact, in some implementations,textual summary generation engine 128 may additionally or alternativelyautomatically generate a textual description of a physical locationbased on one or more aspects assigned to the physical location. Textualsummaries may fall into various categories, including textual summariesthat describe a physical location in comparison to a “peer group” ofsimilar locations (the peer group may include the location itself, too),and textual summaries that describe absolute characteristics of aphysical location.

Textual summaries that compare a physical location to a peer group mayinclude textual summaries that compare the physical location to otherphysical locations (i.e. the peer group) that satisfy one or morecriteria. For example, the textual summary “most searched for Indianrestaurant in Silicon Valley” compares the physical location (an Indianrestaurant in Silicon Valley) to a peer group of Indian restaurants inSilicon Valley. “The most popular bakery in Deer Park” compares thephysical location (a bakery in Deer Park) to a peer group of bakeries inDeer Park. “The cheapest French restaurant with a full bar in Queens”compares the physical location (a French restaurant in Queens) to a peergroup of French restaurants in Queens that have full bars.

The peer group to which a physical location is compared may be selectedbased on one or more criteria. These criteria may include but are notlimited to being located within a particular geographic area, being of aparticular category (e.g., Indian restaurant, Italian restaurant,Mexican restaurant, bar, bakery, coffee shop, etc.), sellinggoods/services within a particular price range, having one or morecharacteristics (quiet ambiance, outdoor seating, full bar, waterfrontview, live music, etc.), and so forth.

The one or more criteria for including physical locations in a peergroup may be selected, e.g., by grouping engine 122, based on varioussignals. These signals may come from various sources, such as clientdevice 105 (directly or indirectly), or from information system 140. Onesuch signal is a particular location of potential interest for a user.If the user indicates (explicitly or implicitly) potential interest inbooking a room at a particular fancy hotel, then criteria for selectinga peer group of hotels may include hotels having a similar price rangeas the particular hotel, or other hotels that best match the user'sparticular preferences (e.g., hotels having particular number of stars,hotels with gyms, etc.).

Another signal for determining one or more criteria for includingphysical locations in a peer group is contextual data associated with auser computing device. Contextual data associated with a user'scomputing device (e.g., smart phone, smart watch, smart glasses, etc.)may include but is not limited to position coordinates (e.g., obtainedusing GPS 108 or other means such as cellular triangulation), a searchengine query performed using browser 106, a directional query performedusing mapping application 110, and so forth. Suppose a user is locatedin a particular neighborhood (e.g., as determined by her GPScoordinates) and uses her phone to search for “inexpensive Italianrestaurants.” Based on the user's context, grouping engine 122 mayobtain, e.g., from interactions database 152, computing interactionsthat pertain to Italian restaurants within a geographic area (e.g.,determined based on her position coordinates) that satisfy a particularprice range (e.g., “$” or “$$”). If a particular Italian restaurant thatfits these criteria is determined, e.g., by interaction measure engine124 and/or aspect engine 126, to be more popular than the rest of itspeers, then textual summary generation engine 128 may generate a textualsummary for that restaurant, such as “The most popular inexpensiveItalian restaurant in the neighborhood,” or something to that effect. Ifanother Italian restaurant that fits these criteria is determined, e.g.,by interaction measure engine 124 and/or aspect engine 126, to havebetter outdoor seating than the rest of its peers, then textual summarygeneration engine 128 may generate a textual summary for thatrestaurant, such as “The best outdoor seating for an inexpensive Italianrestaurant in the neighborhood,” or something to that effect.

Another signal for selecting the one or more criteria for includingphysical locations in a peer group may additionally or alternatively becontextual data associated with a user (as opposed to the user'scomputing device). Suppose an online calendar entry associated with auser indicates that the user is scheduled to be in a particulargeographical area soon after lunch. Suppose further that the user usesher phone to search for “quick lunch spots.” Grouping engine 122 mayselect, e.g., from interactions database 152, interactions that pertainto locations at or near that geographic location that are known toprovide relatively fast lunch options. Other user-related contextualdata that may be used to determine criteria for selecting a peer groupof physical locations may include user preferences, user budget, usersocial network status updates, and so forth.

Another signal for selecting the one or more criteria for includingphysical locations in a peer group may additionally or alternatively benon-user related information such as a population or size of ageographic area. For example, suppose the user is located in Hollywoodand searches for “Indian food.” A textual summary describing aparticular search result as “the best Indian restaurant in California”would not be as useful as, for example, “the best Indian restaurant inLos Angeles.” Thus, a size and/or population of a geographic areaassociated with a user's location may be used, e.g., by grouping engine122, to determine criteria for selecting interactions from interactionsdatabase 152. In some implementations, if a particular physical locationis unique within a geographic area (or more generally, the sole memberof a particular peer group), a special textual summary may be generated,e.g., by textual summary generation engine 128, such as “the onlybourbon bar in St. Matthews.”

Another categories of textual summaries includes textual summaries thatdescribe a physical location in its own, absolute terms, rather than incomparison to a peer group of other physical locations. Computinginteractions that pertain to a physical location may be analyzed, forinstance, in terms of different time periods (e.g., lunch hours versusdinner hours), as described above. Examples of absolute summariesinclude but are not limited to “a significant number of visitors comerevisit this location,” “this place is getting busier,” “this spot ismore popular for brunch than for dinner,” and so forth. In variousimplementations, such textual summaries may be generated, for instance,by textual summary generation engine 128 based on one or more aspectsassigned to a physical location by aspect engine 126.

Generally, information system 140 utilizes aspects that have beendetermined by aspect determination system 120, and/or textual summariesgenerated by textual summary generation engine 128, in providinginformation to a user. The information system 140 may utilize theaspects and/or textual summaries, for example, in determining theinformation to provide (e.g., the aspects may be included in theinformation) and/or determining when or how to provide the information(e.g., the aspects may be utilized to select the information and/or torank the information relative to other information). For example,information system 140 may identify user interest in one or morelocations and provide information related to the one or more locationsbased on determined aspects of the locations. In some implementations,textual summary generation engine 128 may be integral with informationsystem 140 instead of with aspect determination system 120. In otherimplementations, textual summary generation engine 128 may be astandalone component independent from aspect determination system 120and information system 140.

Information system 140 may be, for example, a search engine, anotification and/or suggestion system, and/or one or more other systemsthat may provide information related to locations to a computing deviceof a user based on implicit and/or explicit indications from thecomputing device (e.g., based on a query from the computing device, aselection of a user via the computing device, based on access of anapplication via the computing device such as access of a suggestionsystem). Information system 140 may optionally be in communication withinformation database 158. Information database 158 may includeinformation that may be utilized by information system 140 to provideinformation to the user. For example, information database 158 mayinclude an index of documents, webpages, and/or other information itemsthat may be utilized to identify information to provide to the user. Asone example, information system 140 may be a search engine and theinformation database 158 may be a search index utilized to identifydocuments responsive to search queries. As described herein, suchdocuments may optionally be ranked for search queries based ondetermined aspects that are associated with the documents. In someimplementations, information system 140 and/or another component mayoptionally update information database 158 based on aspects determinedby aspect engine 126 and/or textual summaries generated by textualsummary generation engine 128. For example, when information database158 is an index of webpages and other documents, the index may beupdated to include information related to aspects determined herein(e.g., a webpage associated with a location may be indexed based ondetermined aspects of that location).

In some implementations, information system 140 may select and/or ranksearch results responsive to a submitted search query based ondetermined aspects. For example, a user may provide a search query of“trendy lunch places” and information system 140 may identifyinformation in information database 158 related to one or more nearbylocations that are restaurants. Based on inclusion of “trendy” in thesearch query, the information system 140 may further identify that oneor more of the identified locations are associated with determinedaspects that are indicative of serving lunch and/or of recently“trending up” in popularity. The information system 140 may select suchidentified locations for providing in response to the search queryand/or promote the ranking of such locations in search results providedin response to the search query. As another example, a user may providea query of “new restaurants” and information system 140 may identify oneor more locations in POI database 154 that are associated with an aspectindicating that the restaurant has recently opened (e.g., based onpresence of “new” in the search query) and select information related tosuch locations for providing in response to the query and/or forproviding more prominently in response to the query.

In some implementations, one or more search results may be selectedand/or ranked based on determined aspects, even when terms of a query donot indicate interest in the determined aspects. For example, the usermay provide a search query of “Italian restaurants” and informationsystem 140 may identify one or more webpages responsive to the query viainformation database 158. Information system 140 may identify one ormore locations in POI database 154 that are associated with the webpagesand further identify one or more aspects associated with the locations.Information system 140 may provide search results that include localItalian restaurants and restaurants that have been associated with a“trending up” aspect may be promoted and/or otherwise displayed moreprominently than one or more other search results.

As described, in some implementations, information system 140 mayprovide information related to a location independent of any querysubmission of a user. For example, information system 140 may be anotification or suggestion system that may provide information relatedto locations having “highly popular” or “trending up” aspects to a userwithout the user submitting a query related to the location. Forinstance, the information may be “pushed” to the user and/or provided inresponse to the user accessing the suggestion system or selecting aninterface element in the suggestion system. Also, for example,information system 140 may provide one or more suggestions responsive toa selection of the user that is not the user explicitly typing,speaking, or otherwise inputting a query. For instance, the user mayselect a user interface element to request “popular restaurants” nearbyand information system 140 may select information related to one or morerestaurants based on determined aspects that indicate the restaurantsare “popular”. Also, for example, information system 140 may be amapping application that may provide a map with various points ofinterest for display on a computing device of a user. Information system140 may determine to include one or more of the points of interest basedon association of the points of interest to one or more determinedaspects and/or may determine to display one or more of the points ofinterest more prominently and/or with associated textual summariesgenerated by textual summary generation engine 128. Also, for example, a“recently opened” location may be promoted in ranking of informationprovided to a user. For example, the user may not be provided withrestaurants in a location if the user is familiar with the area. Arestaurant that is associated with an aspect of “recently opened” may beprovided to the user even if the user is familiar with the area andwould not otherwise be provided restaurants in the area.

While depicted as separate components in FIG. 1, in variousimplementations, all or part of aspect determination system 120 and/orinformation system 140 may optionally be combined. Also, in someimplementations, information system 140 may be omitted.

FIG. 2 illustrates an example of how an aspect of a physical locationmay be determined and assigned to the physical location, as well as howone or more textual summaries may be generated and provided toinformation system 140, based on computing interactions pertaining to aphysical location. Computing interactions pertaining to locations arestored in interactions database 152. Grouping engine 122 may beconfigured to determine a group of interactions that includesinteractions for a particular location, for a peer group of locations,for a category of users, for one or more particular times of day, and/orbased on one or more other criteria. In some implementations, groupingengine 122 may identify physical locations based at least in part oninformation in POI database 154. For example, grouping engine 122 mayidentify a location in POI database 154 and determine a group ofcomputing interactions that pertain to the identified location (e.g.,all interactions with the location, interactions at one or more times ofday and/or over a period of time). Also, for example, grouping engine122 may determine computing interactions of interactions database 152that pertain to a particular location based on other information in POIdatabase 154 (e.g., based on mapping interactions to aliases, addresses,or other information of a location in POI database 154).

As an example, grouping engine 122 may identify a location of Restaurant1, an Italian restaurant, and the coordinates and/or address of thelocation. Grouping engine 122 may further determine a group of computinginteractions from interactions database 152 that includes computinginteractions that pertain to Restaurant 1 over the past month. Groupingengine 122 may provide one or more groups of computing interactions tointeraction measure engine 124 to determine one or more interactionmeasures for each group. For example, for each of the groups,interaction measure engine 124 may determine an interaction measure thatis indicative of an average number of interactions per day. Also, forexample, interaction measure engine 124 may determine an interactionmeasure that indicates an average number of interactions per hour ofeach day over the time period of the interactions of each group.Interaction measure engine 124 may provide the interaction measures toaspect engine 126.

In some implementations, only one group of interactions may bedetermined and only one interaction measure may be determined for alocation, as represented by the dotted lines for the second group ofinteractions and second computing interaction measure in FIG. 2(indicating those aspects are optional). For example, the firstcomputing interaction measure may be percentages of the totalinteractions that occurred per hour at the location (e.g., 5% of totalaverage interactions occurred between 10 am and 11 am, 15% of totalaverage interactions occurred between 11 am and 12 pm, etc.). The secondmeasure may not be determined from a group of interactions but mayinstead be a threshold value. For example, the second measure may be athreshold value of 85% of interactions during lunchtime, and aspectengine 126 may determine that the location is a lunch restaurant bycomparing the threshold value to the percentage of total interactionsper hour for lunch hours.

Aspect engine 126 may determine one or more aspects for the locationbased on the interaction measures and associate the aspects with thelocation in the POI database 154. For example, interaction measureengine 124 may determine a first computing interaction measure thatindicates the average interactions during lunchtime for the month thatis most recent in time and a second computing interaction measure thatindicates the average interactions during lunchtime for the last sixmonths. Aspect engine 126 may determine an aspect of “trending inpopularity for lunch” by comparing the interaction measures anddetermining that the average lunchtime interactions has increased by atleast a threshold amount.

As another example of an aspect that may be determined for a location,aspect engine 126 may determine an aspect that indicates whether thecustomers of a location are loyal to the location (and optionally theextent of the loyalty). For example, grouping engine 122 may determine agroup of interactions of users with Restaurant 1. Interaction measureengine 124 may determine, based on the group, an interaction measurethat indicates the number of users that have interacted with thelocation once, the number of users that have interacted with thelocation twice, three times, etc. Also, for example, interaction measureengine 124 may determine a second measure that indicates the averagenumber of times a group of users has interacted with other locationsonce, twice, three times, etc. (e.g., based on groups that includeinteractions of additional locations such as other restaurants of asimilar price range in the same area). Aspect engine 126 may determinean aspect that indicates the restaurant has a loyal clientele bycomparing the counts (or proportion) of repeat customer of the locationwith the repeat customer count (or proportion) of one or more otherlocations (e.g., the more repeat customers, the more loyal).

As another example of determining a customer loyalty aspect of ItalianRestaurant A, a group of interactions may be determined that areassociated with Italian Restaurant A. If it is desirable to determineloyalty among users having certain attributes, in some implementationsthe interactions of the group may optionally be selected by groupingengine 122 based on an association with one or more of those attributes.An interaction measure indicative of a measure of repeat interactionswith Italian Restaurant A may be determined by interaction measureengine 124 based on the group of interactions. For instance, theinteraction measure may be an average quantity of interactions by users,a median quantity of interactions by users, and/or a continuous ordiscrete distribution of quantity of interactions (e.g., a mean with astandard deviation, a vector including raw counts or frequencies foreach of a plurality of interaction quantities such as one interaction,two interactions, three interactions, etc.).

As another example, grouping engine 122 may determine a group ofcomputing interactions for Restaurant 1 and additionally determine agroup of computing interactions for a group of other Italianrestaurants. Interaction measure engine 124 may determine measures ofinteractions for Restaurant 1 and other Italian restaurants. Aspectengine 126 may determine an aspect of the restaurant related to thepopularity of Restaurant 1 based on the interaction measures. Forexample, aspect engine 126 may determine that Restaurant 1 is a popularlocation to have Italian for dinner by determining that the interactionswith Restaurant 1 at dinner is greater than an average number ofinteractions of other Italian restaurants at dinner.

As an example of determining an aspect of Italian Restaurant A thatindicates trending of Italian Restaurant A, a group of computinginteractions may be determined by grouping engine 122 that areassociated with Italian Restaurant A and that are associated with arecent time period (e.g., the most recent X days). If it is desirable todetermine trending among users having certain attributes, in someimplementations the interactions of the group may optionally be selectedby grouping engine 122 based on an association with one or more of thoseattributes. An interaction measure indicative of a quantity ofinteractions with Italian Restaurant A may be determined by interactionmeasure engine 124 based on the group of interactions. For instance, theinteraction measure may be an average quantity of the interactions perday over the most recent X days. A second computing interaction measuremay be determined from a second group of interactions that includesinteractions over the next most recent X days. Aspect engine 126 maydetermine an aspect for the location based on comparing the firstcomputing interaction measure and the second computing interactionmeasure. For example, aspect engine 126 may determine an aspect that thelocation is trending if the interaction measures indicate that theaverage interactions in the last X days is greater than in the X daysbefore.

As shown in FIG. 2, textual summary generation engine 128 may generatetextual summaries about physical locations based on computinginteraction measures obtained from interaction measure engine 124 and/orbased on one or more aspects obtained from aspect engine 126. In someimplementations, textual summary generation engine 128 may obtainaspects from POI database 154, for instance, when those aspects werealready assigned to a physical location in POI database 154 by aspectengine 126. In some implementations, textual summary generation engine128 may provide (or otherwise make available) one or more textualsummaries to information system 140. Information system 140 may thencause textual summaries to be presented to users in various ways, e.g.,adjacent search results, as a pop-up, in a card, etc.

As represented by the arrow from information system 140 to groupingengine 122, in various implementations, grouping engine 122 may receivecontextual data, e.g., pertaining to a user or the user's computingdevice, from information system 140. Grouping engine 122 may use thiscontextual information for various purposes. For example, groupingengine 122 may use the contextual data to determine one or more criteriafor selecting a peer group of a particular physical location (e.g., adestination of a user's directional query). As another example, groupingengine 122 may use contextual data as a starting point (e.g., when theuser has not provided a search) to determine potential implicit userinterest in a particular location, and based on that potential interest,select one or more criteria for a peer group to the particular location.

Suppose grouping engine 122 receives a GPS signal that indicates a useris passing by a Mexican restaurant. Grouping engine 122 may identify agroup of computing interactions in interactions database 152 thatpertain to that Mexican restaurant. Grouping engine 122 may alsoidentify a peer group of Mexican restaurants, e.g., in the samecolloquial area (e.g., “Pacific Heights,” “Butchertown,” etc.).Interaction measure engine 124 may obtain interaction measures thatindicate how often the Mexican restaurant is searched compared to howoften Mexican restaurants of the peer group are searched, which aspectengine 126 may use to assign one or more aspects to the Mexicanrestaurant the user is passing by. Textual summary generation engine 128may produce a textual summary (e.g., “second most searched Mexicanrestaurant in the area”), and information system 140 may provide thatsummary to the user at client device 105, e.g., as a “card” or othersimilar notification.

As represented by the arrow between information database 158 andgrouping engine 122, in some implementations, grouping engine 122 maydetermine one or more criteria for selecting a peer group of aparticular physical location based on other information besidecontextual information. For example, in some implementations, groupingengine 122 may select a geographic area in which peer physical locationsshould be contained based on a physical size and/or population of aparticular geographic area. For example, suppose a user passing throughBrooklyn searches for “good Chinese restaurants.” Grouping engine 122may determine, e.g., based on information from information database 158,that a physical size/population of New York State makes it an unsuitable(too large) geographic area for selecting Chinese restaurants to includein a peer group. This decision may be based on one or more adjustablethresholds (e.g., population less than 50,000, geographic size less than10 miles, etc.). Depending on how these one or more thresholds areadjusted, grouping engine 122 may make the same determination about NewYork City. However, if grouping engine 122 focuses in on Brooklyn, orperhaps even a colloquial region within Brooklyn, the one or morethresholds may be satisfied, and grouping engine 122 may selectcomputing interactions pertaining to peer Chinese restaurants in thatarea.

FIG. 3 is a flow chart illustrating an example method 300 of generatinga textual summary for a physical location based on computinginteractions pertaining to the physical location. For convenience, theoperations of the flow chart are described with reference to a systemthat performs the operations. This system may include various componentsof various computer systems. For instance, some operations may beperformed by one or more components of the aspect determination system120, such as grouping engine 122, interaction measure engine 124, aspectengine 126, and/or textual summary generation engine 128. Moreover,while operations of the method of FIG. 3 are shown in a particularorder, this is not meant to be limiting. One or more operations may bereordered, omitted or added.

At block 302, the system may identify a first group of computinginteractions that pertain to a particular physical location. In someimplementations, the system may select the particular physical locationbased on explicit activity of the user, such as the user searching forreviews about a particular hotel, or for directions to that hotel. Insome instances, the system may select the particular physical locationbased on implicit activity (e.g., contextual) of the user, such as theuser having a meeting scheduled in a particular area during lunch,coupled with the user's general preference for a particular cuisine.Suppose Sue is scheduled to attend a meeting in a neighborhood calledDeer Park immediately following lunch, and that Sue generally prefersIndian cuisine that costs less than $20. The system may identify aclosest Indian restaurant to the location of Sue's meeting, and may thenidentify one or more computing interactions pertaining to that Indianrestaurant.

In some implementations, the first group of computing interactions maybe identified by a component that shares one or more aspects withgrouping engine 122. In some implementations, a group of interactionsmay be determined that includes interactions of users based on one ormore characteristics of the users. For example, grouping engine 122 maydetermine a group of interactions that are associated with certain userattributes and/or certain user groups. In some implementations, groupingengine 122 may determine a group of interactions that occurred during atime period. For example, grouping engine 122 may determine a group ofinteractions that occurred during a particular week, month, day of theweek, and/or during a particular time of day over a period of time(e.g., interactions during lunchtime over the last month).

At block 304, the system may determine one or more criteria forselecting one or more other physical locations as a peer group for theparticular physical location. For example, contextual informationassociated with Sue and/or Sue's smart phone may indicate that Sue islocated in Deer Park, likes Indian food, and has a particular budget forfood. Other information, e.g., from information database 158, mayindicate that Deer Park has a size that is too small (geographic size orpopulation) to select a satisfactory peer group of physical locations,but that the city in which Deer Park is located is suitably sized forselection of a peer group.

At block 306, the system may identify a second group of computinginteractions that pertain to one or more additional physical locationsthat satisfy the one or more criteria determined at block 304. Forexample, the system may select computing interactions associated withIndian restaurants within the city in which Deer Park is located, thatalso satisfy one or more of Sue's budgetary needs.

At block 308, the system may determine a first computing interactionmeasure for the particular physical location based on the interactionsof the first group identified at block 302. The first computinginteraction measure may be determined by a component that shares one ormore characteristics with interaction measure engine 124. In someimplementations, an interaction measure may be a statistic based on theinteractions. For example, an interaction measure for a group ofinteractions may include an average of interactions over a period oftime, an average number of interactions per hour over a period of time,and/or a proportion of average daily interactions that occurred eachhour over a period of time (e.g., percentage of customers for the daythat were lunch customers, percentage of customers for the day that weredinner customers). For example, the system may determine that the Indianrestaurant close to Sue's meeting has been searched a particular numberof times in the last month.

At block 310, the system may determine a second computing interactionmeasure based on the one or more computing interactions of the secondgroup determined at block 306. For example, the system may determinenumbers of times that other Indian restaurants in the city have beensearched for by users in the last month. In other implementations,rather than relating to a peer group of physical locations, the secondcomputing interaction measure may be one or more static or dynamicthresholds. For example, the first computing interaction measure may beindicative of duration of interactions with the location and the secondmeasure may be a static threshold duration.

At block 312, the system may determine an aspect of the physicallocation based on a comparison of the first and second computinginteraction measures. In some implementations, the aspect may beassigned to the physical location. The aspect of a physical location maybe determined by a component that shares one or more characteristicswith aspect engine 126 and may be assigned to the location based onassociation with the location in one or more databases such as POIdatabase 154.

At block 314, the system may generate one or more textual summariespertaining to the particular physical location. The textual summary maybe generated by a component that shares one or more characteristics withtextual summary generation engine 128. These one or more textualsummaries may be generated based on comparison of two or more computinginteraction measures (e.g., determined at blocks 308 and 310), or may bebased on one or more aspects determined at 312.

In some implementations, the system may generate a textual summary usingone or more of a plurality of template textual summaries. The system mayselect a template textual summary based in part on a type of computinginteraction used to determine computing interaction measures at blocks308 and 310. Table 1, below, provides a non-limiting example of a peergroup-based lookup table that may be used to select a template textualsummary, including a type of computing interaction analyzed and examplethresholds that may be used to select from a plurality of potentiallyapplicable template textual summaries.

TABLE 1 Type of computing Summary type interaction analyzed Thresholds“The most searched for” driving directions top 1 “Amongst the mostsearched for” driving directions top 1% “Often searched” drivingdirections top 10% “Unique” Any N/A “One of the best reviewed” Onlinemarketplace top 15% reviews “One of the most popular” Total number ofvisits top 10%

Table 2, below, provides a non-limiting example of an “absolute” lookuptable that may be used to select a template textual summary, including atype of computing interaction analyzed and example thresholds that maybe used to select from a plurality of potentially applicable templatetextual summaries.

TABLE 2 Type of computing Summary type interaction analyzed Thresholds“Popular with tourists” home + driving directions 60% of tourists“Popular with locals” home + driving directions top 1% “Popular atlunch/dinner/ Total number of visits + top 10% breakfast/late night”driving directions “Quick bites” Visit duration Average time spent < 45min “Popular at brunch/ Total number of visits + top 10% happy hour”driving directions “Loyal customers” Total number of visits + top 10%driving directions

Referring to FIG. 4, an example interface 400 is provided that includesinformation based on determined aspects of locations. In someimplementations, information system 140 may determine the informationincluded in interface 400 of FIG. 4 and provide interface 400 (orinformation such as HTML or XML that facilitates rendering of interface400) to client device 105 for presentation to a user. For example,information system 140 may be a search engine and interface 400 (orinformation to facilitate its rendering) may be provided to the user viabrowser 106 in response to the user providing a search query. Also, forexample, information system 140 may be a suggestion system and interface400 may be provided via a suggestion application of the client device105. In some implementations, only parts of interface 400 of FIG. 4 maybe provided to the user and/or the information may be provided via oneor more alternate interfaces.

Lunch suggestions 402 may be provided to the user based on one or moreaspects that are identified by information system 140 as related to thelocations. For example, lunch suggestions 402 may be provided to theuser in response to the user providing a query of “popular lunchrestaurants”, the user otherwise indicating an interest in lunchrestaurants (e.g., selecting an interface element for “lunchrestaurants”), or based on an identified context of the user (e.g., itis close to lunch time at the user's current location). In someimplementations, lunch suggestions 402 may include locations thatinformation system 140 has identified in POI database 154 as beingassociated with a “popular lunch location” aspect and the listing oflocations may be provided based on the aspects. In some implementations,the ordering of the locations in the lunch suggestions 402 may bedetermined based on one or more aspects associated with the locations inPOI database 154. For example, a location that is associated with anaspect of trending in popularity may be promoted in ranking in the listof provided locations.

Favorite restaurant suggestions 404 may be provided to a user via clientdevice 105, either as a separate interface or as part of interface 400.In some implementations, favorite restaurant suggestions 404 may includeone or more locations that are identified by information system 140 fromPOI database 154 and that are associated with a “favorite restaurants oflocals” aspect. For example, grouping engine 122 may determine, for eachof the restaurants of 404, a first group of computing interactions forthe restaurant that are associated with “locals” (e.g., those who livenear the restaurant) and a second group of computing interactions forthe restaurant that includes “non-locals” (e.g., all interactions forthe restaurant). Interaction measure engine 124 may determine first andsecond computing interaction measures based on the groups, and aspectengine 126 may determine, based on the measures, that the restaurant ispopular with users that are locals. Information system 140 may providethe listed restaurants of 404 based on determining they are eachassociated with a “favorite restaurants of locals” aspects. Each of therestaurants also includes additional information, such as a popularityrating (indicated by stars) and a category of the restaurant (i.e.,pizza and steak) that may be identified via information database 158and/or POI database 154. In some implementations, one or more of thelocations may be selected and/or ranked based on additional associatedaspects (e.g., trending restaurants may be promoted, more popularrestaurants may be promoted).

Search results 406 may be provided in interface 400 with otherinformation as illustrated in FIG. 4 and/or may be provided as aseparate interface. For example, information system 140 may be a searchengine and search results 406 may be provided to the user via clientdevice 105 in response to a query provided by the user. In someimplementations, information that is provided with search results may beidentified via information database 158 and the results may be selectedand/or ranked based on aspects associated with locations that arerelated to the search results, as described herein.

In this example, search engine results 406 are accompanied by textualsummaries generated by, for example, textual summary generation engine128. For example, the first result is accompanied by the text, “Mostsearched-for Italian restaurant in neighborhood.” This Italianrestaurant evidently has been compared to a peer group of Italianrestaurants in a particular neighborhood. The second result isaccompanied by the text, “Italian restaurant more popular for dinnerthan for lunch.” Computing interactions pertaining to this Italianrestaurant have been compared across temporal periods (lunch and dinnertime intervals). The third result is accompanied by the text, “OnlyItalian restaurant in city with live music.” This Italian restaurant hasbeen compared to a peer group of Italian restaurants in the “city,” andapparently is unique among that peer group in having live music.

FIG. 5 is a block diagram of an example computer system 510. Computersystem 510 typically includes at least one processor 514 whichcommunicates with a number of peripheral devices via bus subsystem 512.These peripheral devices may include a storage subsystem 524, including,for example, a memory subsystem 525 and a file storage subsystem 526,user interface output devices 520, user interface input devices 522, anda network interface subsystem 516. The input and output devices allowuser interaction with computer system 510. Network interface subsystem516 provides an interface to outside networks and is coupled tocorresponding interface devices in other computer systems.

User interface input devices 522 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a touchscreen incorporated into the display, audio inputdevices such as voice recognition systems, microphones, and/or othertypes of input devices. In general, use of the term “input device” isintended to include all possible types of devices and ways to inputinformation into computer system 510 or onto a communication network.

User interface output devices 520 may include a display subsystem, aprinter, a fax machine, or non-visual displays such as audio outputdevices. The display subsystem may include a cathode ray tube (CRT), aflat-panel device such as a liquid crystal display (LCD), a projectiondevice, or some other mechanism for creating a visible image. Thedisplay subsystem may also provide non-visual display such as via audiooutput devices. In general, use of the term “output device” is intendedto include all possible types of devices and ways to output informationfrom computer system 510 to the user or to another machine or computersystem.

Storage subsystem 524 stores programming and data constructs thatprovide the functionality of some or all of the modules describedherein. For example, the storage subsystem 524 may include the logic toperform selected aspects of the method of FIG. 3, as well as one or moreof the operations performed by grouping engine 122, interaction measureengine 124, aspect engine 126, textual summary generation engine 128,and so forth.

These software modules are generally executed by processor 514 alone orin combination with other processors. Memory 525 may include a number ofmemories including a main random access memory (RAM) 530 for storage ofinstructions and data during program execution and a read only memory(ROM) 532 in which fixed instructions are stored. A file storagesubsystem 526 can provide persistent storage for program and data files,and may include a hard disk drive, a floppy disk drive along withassociated removable media, a CD-ROM drive, an optical drive, orremovable media cartridges. The modules implementing the functionalityof certain implementations may be stored by file storage subsystem 526in the storage subsystem 524, or in other machines accessible by theprocessor(s) 514.

Bus subsystem 512 provides a mechanism for letting the variouscomponents and subsystems of computer system 510 communicate with eachother as intended. Although bus subsystem 512 is shown schematically asa single bus, alternative implementations of the bus subsystem may usemultiple busses.

Computer system 510 can be of varying types including a workstation,server, computing cluster, blade server, server farm, or any other dataprocessing system or computing device. Due to the ever-changing natureof computers and networks, the description of computer system 510depicted in FIG. 5 is intended only as a specific example for purposesof illustrating some implementations. Many other configurations ofcomputer system 510 are possible having more or fewer components thanthe computer system depicted in FIG. 5.

While several implementations have been described and illustratedherein, a variety of other means and/or structures for performing thefunction and/or obtaining the results and/or one or more of theadvantages described herein may be utilized, and each of such variationsand/or modifications is deemed to be within the scope of theimplementations described herein. More generally, all parameters,dimensions, materials, and configurations described herein are meant tobe exemplary and that the actual parameters, dimensions, materials,and/or configurations will depend upon the specific application orapplications for which the teachings is/are used. Those skilled in theart will recognize, or be able to ascertain using no more than routineexperimentation, many equivalents to the specific implementationsdescribed herein. It is, therefore, to be understood that the foregoingimplementations are presented by way of example only and that, withinthe scope of the appended claims and equivalents thereto,implementations may be practiced otherwise than as specificallydescribed and claimed. Implementations of the present disclosure aredirected to each individual feature, system, article, material, kit,and/or method described herein. In addition, any combination of two ormore such features, systems, articles, materials, kits, and/or methods,if such features, systems, articles, materials, kits, and/or methods arenot mutually inconsistent, is included within the scope of the presentdisclosure.

What is claimed is:
 1. A computer-implemented method, comprising:identifying, from one or more databases, a first group of computinginteractions that pertain to a physical location; identifying, from theone or more databases, a second group of computing interactions thatpertain to one or more additional physical locations, wherein the one ormore additional physical locations satisfy one or more criteria;determining a first computing interaction measure for the physicallocation based on the first group of computing interactions; determininga second computing interaction measure for the one or more additionalphysical locations based on the second group of computing interactions;and automatically generating a textual description of the physicallocation based on comparison of the first computing interaction measureto the second computing interaction measure.
 2. The computer-implementedmethod of claim 1, wherein the one or more criteria comprise beinglocated within a geographic area associated with the physical location.3. The computer-implemented method of claim 2, further comprisingselecting the geographic area based at least in part on a population orsize of the geographic area.
 4. The computer-implemented method of claim1, wherein the one or more criteria comprise being associated with aparticular price range.
 5. The computer-implemented method of claim 4,further comprising defining the particular price range based on a pricerange associated with the physical location or a user preference.
 6. Thecomputer-implemented method of claim 1, wherein the one or more criteriacomprise being associated with a particular category.
 7. Thecomputer-implemented method of claim 6, wherein the one or more criteriafurther comprise being located within a geographic area associated withthe physical location.
 8. The computer-implemented method of claim 1,wherein automatically generating the textual description of the physicallocation comprises including, in the textual description, an indicationof a how the first computing interaction measure compares to the secondcomputing interaction measure.
 9. The computer-implemented method ofclaim 1, further comprising determining the one or more criteria basedon contextual data associated with a user computing device.
 10. Thecomputer-implemented method of claim 9, wherein the contextual dataincludes a user search, performed on the user computing device, relatingto physical locations that satisfy the one or more criteria.
 11. Thecomputer-implemented method of claim 9, wherein the contextual dataincludes a location of the user computing device.
 12. Thecomputer-implemented method of claim 9, wherein the contextual dataincludes a directional query performed on the user computing device. 13.A system including memory and one or more processors operable to executeinstructions stored in memory, comprising instructions to: determine,from one or more databases, a first group of computing interactions thatpertain to a physical location; determine, from the one or moredatabases, a second group of computing interactions that pertain to: oneor more additional physical locations that are in addition to thephysical location, or the physical location that are temporally distinctfrom the computing interactions of the first group; and determine afirst interaction measure for the physical location based on the firstgroup; determine a second interaction measure for the physical locationbased on the second group; and automatically generate a textualdescription of the physical location based on comparison of the firstcomputing interaction measure to the second computing interactionmeasure.
 14. The system of claim 13, wherein the second group ofcomputing interactions pertain to one or more physical locations thatsatisfy one or more criteria.
 15. The system of claim 14, wherein theone or more criteria comprise being located within a geographic areaassociated with the physical location.
 16. The system of claim 15,further comprising instructions to select the geographic area based atleast in part on a population or size of the geographic area.
 17. Thesystem of claim 14, wherein the one or more criteria comprise beingassociated with a particular price range or with a particular category.18. The system of claim 14, further comprising instructions to include,in the textual description, an indication of a how the first computinginteraction measure compares to the second computing interactionmeasure.
 19. The system of claim 14, further comprising instructions todetermine the one or more criteria based on contextual data associatedwith a user computing device.
 20. At least one non-transitorycomputer-readable medium comprising instructions that, in response toexecution of the instructions by a computing system, cause the computingsystem to perform the following operations: identifying, based oncontextual data associated with a user or a computing device operated bythe user, a physical location of potential interest to the user;identifying, from one or more databases, a first group of computinginteractions that pertain to the physical location of potential interestto the user; identifying, from the one or more databases, a second groupof computing interactions that pertain to one or more additionalphysical locations, wherein the one or more additional physicallocations satisfy one or more criteria; determining a first computinginteraction measure for the physical location of potential interest tothe user based on the first group of computing interactions; determininga second computing interaction measure for the one or more additionalphysical locations based on the second group of computing interactions;determining an aspect of the physical location of potential interest tothe user based on the first and second computing interaction measures;and automatically generating a textual description of the physicallocation based on the determined aspect.